/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package conversormonedasrmi;

import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Johann Pando
 */
public class ConversorCliente {

    public static void main(String[] args) {
        try {
            String opc = "";
            double cantidadConvertir = 0;

            // 1.- Localizar el objeto remoto
            Remote robj = Naming.lookup("rmi://localhost:1099/miConversor");

            // 2.- Convertir al tipo de la interface
            IMetodosConversion iConv = (IMetodosConversion) robj;

            // 3.- Usar el objeto remoto
            //System.out.println(iConv.convierteMoneda(10, TipoMoneda.EUROS, TipoMoneda.DOLARES));
            do {
                try {
                    Scanner sc = new Scanner(System.in);
                    System.out.println("Menú conversión de monedas\n");
                    System.out.println("Seleccione una opción:\n");
                    System.out.println("1.- Cambiar de Euros a Dólares.");
                    System.out.println("2.- Cambiar de Euros a Pesetas.");
                    System.out.println("3.- Cambiar de Euros a Libras.");
                    System.out.println("4.- Cambiar de Dólares a Euros");
                    System.out.println("5.- Cambiar de Dólares a Pesetas");
                    System.out.println("6.- Cambiar de Dólares a Libras");
                    System.out.println("7.- Cambiar de Libras a Euros");
                    System.out.println("8.- Cambiar de Libras a Dólares");
                    System.out.println("9.- Cambiar de Libras a Pesetas");
                    System.out.println("80.- Salir.");
                    opc = sc.nextLine();
                    switch (opc) {
                        case "1":
                            System.out.println("Ingrese una cantidad en euros:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteEuroToDolar(cantidadConvertir));
                            break;
                        case "2":
                            System.out.println("Ingrese una cantidad en euros:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteEuroToPeseta(cantidadConvertir));
                            break;
                        case "3":
                            System.out.println("Ingrese una cantidad en euros:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteEuroToLibra(cantidadConvertir));
                            break;
                        case "4":
                            System.out.println("Ingrese una cantidad en dólares:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteDolarToEuro(cantidadConvertir));
                            break;
                        case "5":
                            System.out.println("Ingrese una cantidad en dólares:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteDolarToPeseta(cantidadConvertir));
                            break;
                        case "6":
                            System.out.println("Ingrese una cantidad en dólares:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteDolarToLibra(cantidadConvertir));
                            break;

                        case "7":
                            System.out.println("Ingrese una cantidad en libras:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteLibraToEuro(cantidadConvertir));
                            break;

                        case "8":
                            System.out.println("Ingrese una cantidad en libras:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteLibraToDolar(cantidadConvertir));
                            break;

                        case "9":
                            System.out.println("Ingrese una cantidad en libras:");
                            cantidadConvertir = sc.nextDouble();
                            System.out.println(iConv.convierteLibraToPeseta(cantidadConvertir));
                            break;
                        case "80":
                            System.out.println("Gracias por usar este convertidor."
                                    + "\nHasta pronto.");
                            break;
                        default:
                            System.out.println("La opción introducida no existe");

                    }
                } catch (InputMismatchException e) {
                    System.out.println("Error de formato, inténtelo de nuevo");
                }
            } while (!opc.equals("80"));
        } catch (NotBoundException | MalformedURLException | RemoteException ex) {
            System.out.println("Error al invocar al objeto remoto.");
            Logger.getLogger(ConversorCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
